Conventionally, for managing image data divided in packet unit and stored in a memory, a header is provided to the packet for writing information regarding the length of the packet, and the packet data is arranged in a given order. Therefore, as long as reading/writing is performed in the given order, the header information is correctly read/written by virtue of the header information. Moreover, for randomly accessing the packet, a packet table having addresses of stored packets is used.
Generally speaking, in a case of image data printed by a printer, a portion not including characters is blank, thus having no data. Such blank portion often takes up a large proportion of the page. When image data for a page is divided into packets and managed, many packets include pixels for the blank portion. As a result, a large number of packets having exactly the same data take up a large proportion of the memory.